home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ppppaaaacccckkkk((((3333TTTTkkkk)))) ppppaaaacccckkkk((((3333TTTTkkkk))))
-
-
-
- NNNNAAAAMMMMEEEE
- pack - Geometry manager that packs around edges of cavity
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ppppaaaacccckkkk _o_p_t_i_o_n _a_r_g ?_a_r_g ...?
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- The ppppaaaacccckkkk command is used to communicate with the packer, a geometry
- manager that arranges the children of a parent by packing them in order
- around the edges of the parent. The ppppaaaacccckkkk command can have any of several
- forms, depending on the _o_p_t_i_o_n argument:
-
- ppppaaaacccckkkk _s_l_a_v_e ?_s_l_a_v_e ...? ?_o_p_t_i_o_n_s?
- If the first argument to ppppaaaacccckkkk is a window name (any value starting
- with ``.''), then the command is processed in the same way as ppppaaaacccckkkk
- ccccoooonnnnffffiiiigggguuuurrrreeee.
-
- ppppaaaacccckkkk ccccoooonnnnffffiiiigggguuuurrrreeee _s_l_a_v_e ?_s_l_a_v_e ...? ?_o_p_t_i_o_n_s?
- The arguments consist of the names of one or more slave windows
- followed by pairs of arguments that specify how to manage the
- slaves. See ``THE PACKER ALGORITHM'' below for details on how the
- options are used by the packer. The following options are
- supported:
-
- ----aaaafffftttteeeerrrr _o_t_h_e_r
- _O_t_h_e_r must the name of another window. Use its master as the
- master for the slaves, and insert the slaves just after _o_t_h_e_r
- in the packing order.
-
- ----aaaannnncccchhhhoooorrrr _a_n_c_h_o_r
- _A_n_c_h_o_r must be a valid anchor position such as nnnn or sssswwww; it
- specifies where to position each slave in its parcel. Defaults
- to cccceeeennnntttteeeerrrr.
-
- ----bbbbeeeeffffoooorrrreeee _o_t_h_e_r
- _O_t_h_e_r must the name of another window. Use its master as the
- master for the slaves, and insert the slaves just before _o_t_h_e_r
- in the packing order.
-
- ----eeeexxxxppppaaaannnndddd _b_o_o_l_e_a_n
- Specifies whether the slaves should be expanded to consume
- extra space in their master. _B_o_o_l_e_a_n may have any proper
- boolean value, such as 1111 or nnnnoooo. Defaults to 0.
-
- ----ffffiiiillllllll _s_t_y_l_e
- If a slave's parcel is larger than its requested dimensions,
- this option may be used to stretch the slave. _S_t_y_l_e must have
- one of the following values:
-
-
-
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- ppppaaaacccckkkk((((3333TTTTkkkk)))) ppppaaaacccckkkk((((3333TTTTkkkk))))
-
-
-
- nnnnoooonnnneeee Give the slave its requested dimensions plus any internal
- padding requested with ----iiiippppaaaaddddxxxx or ----iiiippppaaaaddddyyyy. This is the
- default.
-
- xxxx Stretch the slave horizontally to fill the entire width of
- its parcel (except leave external padding as specified by
- ----ppppaaaaddddxxxx).
-
- yyyy Stretch the slave vertically to fill the entire height of
- its parcel (except leave external padding as specified by
- ----ppppaaaaddddyyyy).
-
- bbbbooootttthhhh Stretch the slave both horizontally and vertically.
-
- ----iiiinnnn _o_t_h_e_r
- Insert the slave(s) at the end of the packing order for the
- master window given by _o_t_h_e_r.
-
- ----iiiippppaaaaddddxxxx _a_m_o_u_n_t
- _A_m_o_u_n_t specifies how much horizontal internal padding to leave
- on each side of the slave(s). _A_m_o_u_n_t must be a valid screen
- distance, such as 2222 or ....5555cccc. It defaults to 0.
-
- ----iiiippppaaaaddddyyyy _a_m_o_u_n_t
- _A_m_o_u_n_t specifies how much vertical internal padding to leave on
- each side of the slave(s). _A_m_o_u_n_t defaults to 0.
-
- ----ppppaaaaddddxxxx _a_m_o_u_n_t
- _A_m_o_u_n_t specifies how much horizontal external padding to leave
- on each side of the slave(s). _A_m_o_u_n_t defaults to 0.
-
- ----ppppaaaaddddyyyy _a_m_o_u_n_t
- _A_m_o_u_n_t specifies how much vertical external padding to leave on
- each side of the slave(s). _A_m_o_u_n_t defaults to 0.
-
- ----ssssiiiiddddeeee _s_i_d_e
- Specifies which side of the master the slave(s) will be packed
- against. Must be lllleeeefffftttt, rrrriiiigggghhhhtttt, ttttoooopppp, or bbbboooottttttttoooommmm. Defaults to
- ttttoooopppp.
-
- If no ----iiiinnnn, ----aaaafffftttteeeerrrr or ----bbbbeeeeffffoooorrrreeee option is specified then each of the
- slaves will be inserted at the end of the packing list for its
- parent unless it is already managed by the packer (in which case it
- will be left where it is). If one of these options is specified
- then all the slaves will be inserted at the specified point. If any
- of the slaves are already managed by the geometry manager then any
- unspecified options for them retain their previous values rather
- than receiving default values.
-
- ppppaaaacccckkkk ffffoooorrrrggggeeeetttt _s_l_a_v_e ?_s_l_a_v_e ...?
- Removes each of the _s_l_a_v_es from the packing order for its master and
- unmaps their windows. The slaves will no longer be managed by the
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- ppppaaaacccckkkk((((3333TTTTkkkk)))) ppppaaaacccckkkk((((3333TTTTkkkk))))
-
-
-
- packer.
-
- ppppaaaacccckkkk iiiinnnnffffoooo _s_l_a_v_e
- Returns a list whose elements are the current configuration state of|
- the slave given by _s_l_a_v_e in the same option-value form that might be|
- specified to ppppaaaacccckkkk ccccoooonnnnffffiiiigggguuuurrrreeee. The first two elements of the list are|
- ``----iiiinnnn _m_a_s_t_e_r'' where _m_a_s_t_e_r is the slave's master.
-
- ppppaaaacccckkkk pppprrrrooooppppaaaaggggaaaatttteeee _m_a_s_t_e_r ?_b_o_o_l_e_a_n?
- If _b_o_o_l_e_a_n has a true boolean value such as 1111 or oooonnnn then propagation
- is enabled for _m_a_s_t_e_r, which must be a window name (see ``GEOMETRY
- PROPAGATION'' below). If _b_o_o_l_e_a_n has a false boolean value then
- propagation is disabled for _m_a_s_t_e_r. In either of these cases an
- empty string is returned. If _b_o_o_l_e_a_n is omitted then the command
- returns 0000 or 1111 to indicate whether propagation is currently enabled
- for _m_a_s_t_e_r. Propagation is enabled by default.
-
- ppppaaaacccckkkk ssssllllaaaavvvveeeessss _m_a_s_t_e_r
- Returns a list of all of the slaves in the packing order for _m_a_s_t_e_r.
- The order of the slaves in the list is the same as their order in
- the packing order. If _m_a_s_t_e_r has no slaves then an empty string is
- returned.
-
-
- TTTTHHHHEEEE PPPPAAAACCCCKKKKEEEERRRR AAAALLLLGGGGOOOORRRRIIIITTTTHHHHMMMM
- For each master the packer maintains an ordered list of slaves called the
- _p_a_c_k_i_n_g _l_i_s_t. The ----iiiinnnn, ----aaaafffftttteeeerrrr, and ----bbbbeeeeffffoooorrrreeee configuration options are
- used to specify the master for each slave and the slave's position in the
- packing list. If none of these options is given for a slave then the
- slave is added to the end of the packing list for its parent.
-
- The packer arranges the slaves for a master by scanning the packing list
- in order. At the time it processes each slave, a rectangular area within
- the master is still unallocated. This area is called the _c_a_v_i_t_y; for
- the first slave it is the entire area of the master.
-
- For each slave the packer carries out the following steps:
-
- [1] The packer allocates a rectangular _p_a_r_c_e_l for the slave along the
- side of the cavity given by the slave's ----ssssiiiiddddeeee option. If the side
- is top or bottom then the width of the parcel is the width of the
- cavity and its height is the requested height of the slave plus the
- ----iiiippppaaaaddddyyyy and ----ppppaaaaddddyyyy options. For the left or right side the height of
- the parcel is the height of the cavity and the width is the
- requested width of the slave plus the ----iiiippppaaaaddddxxxx and ----ppppaaaaddddxxxx options. The
- parcel may be enlarged further because of the ----eeeexxxxppppaaaannnndddd option (see
- ``EXPANSION'' below)
-
- [2] The packer chooses the dimensions of the slave. The width will
- normally be the slave's requested width plus twice its ----iiiippppaaaaddddxxxx option
- and the height will normally be the slave's requested height plus
- twice its ----iiiippppaaaaddddyyyy option. However, if the ----ffffiiiillllllll option is xxxx or bbbbooootttthhhh
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- ppppaaaacccckkkk((((3333TTTTkkkk)))) ppppaaaacccckkkk((((3333TTTTkkkk))))
-
-
-
- then the width of the slave is expanded to fill the width of the
- parcel, minus twice the ----ppppaaaaddddxxxx option. If the ----ffffiiiillllllll option is yyyy or
- bbbbooootttthhhh then the height of the slave is expanded to fill the width of
- the parcel, minus twice the ----ppppaaaaddddyyyy option.
-
- [3] The packer positions the slave over its parcel. If the slave is
- smaller than the parcel then the ----aaaannnncccchhhhoooorrrr option determines where in
- the parcel the slave will be placed. If ----ppppaaaaddddxxxx or ----ppppaaaaddddyyyy is non-zero,
- then the given amount of external padding will always be left
- between the slave and the edges of the parcel.
-
- Once a given slave has been packed, the area of its parcel is subtracted
- from the cavity, leaving a smaller rectangular cavity for the next slave.
- If a slave doesn't use all of its parcel, the unused space in the parcel
- will not be used by subsequent slaves. If the cavity should become too
- small to meet the needs of a slave then the slave will be given whatever
- space is left in the cavity. If the cavity shrinks to zero size, then
- all remaining slaves on the packing list will be unmapped from the screen
- until the master window becomes large enough to hold them again.
-
-
- EEEEXXXXPPPPAAAANNNNSSSSIIIIOOOONNNN
- If a master window is so large that there will be extra space left over
- after all of its slaves have been packed, then the extra space is
- distributed uniformly among all of the slaves for which the ----eeeexxxxppppaaaannnndddd
- option is set. Extra horizontal space is distributed among the
- expandable slaves whose ----ssssiiiiddddeeee is lllleeeefffftttt or rrrriiiigggghhhhtttt, and extra vertical space
- is distributed among the expandable slaves whose ----ssssiiiiddddeeee is ttttoooopppp or bbbboooottttttttoooommmm.
-
-
- GGGGEEEEOOOOMMMMEEEETTTTRRRRYYYY PPPPRRRROOOOPPPPAAAAGGGGAAAATTTTIIIIOOOONNNN
- The packer normally computes how large a master must be to just exactly
- meet the needs of its slaves, and it sets the requested width and height
- of the master to these dimensions. This causes geometry information to
- propagate up through a window hierarchy to a top-level window so that the
- entire sub-tree sizes itself to fit the needs of the leaf windows.
- However, the ppppaaaacccckkkk pppprrrrooooppppaaaaggggaaaatttteeee command may be used to turn off propagation
- for one or more masters. If propagation is disabled then the packer will
- not set the requested width and height of the packer. This may be useful
- if, for example, you wish for a master window to have a fixed size that
- you specify.
-
-
- RRRREEEESSSSTTTTRRRRIIIICCCCTTTTIIIIOOOONNNNSSSS OOOONNNN MMMMAAAASSSSTTTTEEEERRRR WWWWIIIINNNNDDDDOOOOWWWWSSSS
- The master for each slave must either be the slave's parent (the default)
- or a descendant of the slave's parent. This restriction is necessary to
- guarantee that the slave can be placed over any part of its master that
- is visible without danger of the slave being clipped by its parent.
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-
-
-
- ppppaaaacccckkkk((((3333TTTTkkkk)))) ppppaaaacccckkkk((((3333TTTTkkkk))))
-
-
-
- PPPPAAAACCCCKKKKIIIINNNNGGGG OOOORRRRDDDDEEEERRRR
- If the master for a slave is not its parent then you must make sure that
- the slave is higher in the stacking order than the master. Otherwise the
- master will obscure the slave and it will appear as if the slave hasn't
- been packed correctly. The easiest way to make sure the slave is higher
- than the master is to create the master window first: the most recently
- created window will be highest in the stacking order. Or, you can use
- the rrrraaaaiiiisssseeee and lllloooowwwweeeerrrr commands to change the stacking order of either the
- master or the slave.
-
-
- KKKKEEEEYYYYWWWWOOOORRRRDDDDSSSS
- geometry manager, location, packer, parcel, propagation, size
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 5555
-
-
-
-